<?php
/*
	兼容插件开发
	
*/
defined('BY_JYA') or exit('error');
global $_RQ,$_AR;
$_RQ['op']=$_RQ['op']?$_RQ['op']:'list';
$return=array();
if($_RQ['op']=='list'){
	//搜索
	$return['params']=$params=array();
	$params['is_my']=1;
	$params['type']=4;
	if($_RQ['title']){
		$params['title like']='%'.$_RQ['title'].'%';
	}
	$pindex = max(1, intval($_RQ['page']));
	$psize = 10;
	$total='';
	$fields=array('id','title','name','image','hide');
	$list=pdo_getslice('core_plugins',$params,array($pindex,$psize),$total,$fields,'','id desc');
	$return['list']=$list;
	//页面显示设置
	$htmls=array(
		'type'=>'list',
		'tabs'=>array(
			'0'=>array('op'=>'list','title'=>'插件列表'),
		),
		'list'=>array('data'=>'list','tip'=>'此处用于管理兼容插件，如需删除插件，请到系统管理——插件管理中卸载！','delall'=>false,'del_one'=>false,'list'=>array(
			array('name'=>'image','title'=>'插件logo','type'=>'image'),
			array('name'=>'name','title'=>'插件标识','type'=>'string'),
			array('name'=>'title','title'=>'插件名称','type'=>'string'),
			array('name'=>'hide','title'=>'是否上线','type'=>'switch','open_value'=>'0','close_value'=>'1','set'=>'set'),
		)),
		'search_one'=>array('name'=>'title'),
	);
	$return['htmls']=$htmls;
	exi($return);
}
if($_RQ['op']=='set'){
	$id=intval($_RQ['id']);
	if(!$id){
		exi('请先选择插件！','error');
	}
	$post=get_postdata();
	if(!isset($post['hide'])){
		exi('请先选择是否上线！','error');
	}
	pdo_update('core_plugins',array('hide'=>intval($post['hide'])),array('id'=>$id));
	exi('操作成功！');
}
if($_RQ['op']=='edit'){
	$id=intval($_RQ['id']);
	if($id){
		$item=pdo_get('core_plugins',array('id'=>$id));
		$old=pdo_get('core_old_plugins',array('name'=>$item['name']));
		$item=array_merge($old,$item);
		if($item['covers']){
			$item['covers']=json_decode($item['covers'],true);
		}
		if($item['menus']){
			$item['menus']=json_decode($item['menus'],true);
		}
		
	}else{
		$item=array();
	}
	$return['item']=$item;
	$return['htmls']=array(
		'type'=>'edit',
		'desc'=>'设置插件信息。注意，此处用于导入插件到系统，插件文件请先行放到系统插件目录，插件数据表也请先行导入。',
		'post'=>'post',
		'tabs'=>array(
			array('op'=>'list','title'=>'返回插件列表'),
		),
		'edit'=>array(
			array('name'=>'name','type'=>'string','title'=>'插件标识'),
			array('name'=>'title','type'=>'string','title'=>'插件名称'),
			array('name'=>'image','type'=>'string','title'=>'插件logo'),
			array('name'=>'need_menu','type'=>'switch','title'=>'是否需要系统菜单','help'=>'如果插件页面是完整页面，例如人人商城等则无需系统菜单；如果插件相对简单，如智慧预约等，需要系统菜单充实页面'),
			array('name'=>'setting','type'=>'switch','title'=>'是否含有参数设置页','help'=>'根据插件具体情况设置'),
			array('name'=>'ability','type'=>'string','title'=>'插件简介'),
			array(
				'type'=>'array',
				'name'=>'covers',
				'show_detail'=>true,
				'title'=>'功能入口设置',
				'add_tip'=>'添加一个入口',
				'list'=>array(
					array('type'=>'string','name'=>'name','title'=>'入口页面action'),
					array('type'=>'string','name'=>'title','title'=>'入口名称'),
				),'details'=>array(
					array('type'=>'string','name'=>'name','title'=>'页面action'),
					array('type'=>'string','name'=>'title','title'=>'页面名称'),
				)
			),
			array(
				'type'=>'array',
				'name'=>'menus',
				'show_detail'=>true,
				'title'=>'功能菜单设置',
				'add_tip'=>'添加一个菜单',
				'list'=>array(
					array('type'=>'string','name'=>'name','title'=>'页面action'),
					array('type'=>'string','name'=>'title','title'=>'页面名称'),
				),'details'=>array(
					array('type'=>'string','name'=>'name','title'=>'页面action'),
					array('type'=>'string','name'=>'title','title'=>'页面名称'),
				)
			),
		),
	);
	exi($return);
}
if($_RQ['op']=='post'){
	$post=get_postdata();
	$data=array(
		'name'=>$post['name'],
		'title'=>$post['title'],
		'image'=>$post['image'],
		'covers'=>ijson_encode($post['covers']),
		'menus'=>ijson_encode($post['menus']),
		'ability'=>$post['ability'],
	);
	$old=array(
		'need_menu'=>intval($post['need_menu']),
		'setting'=>intval($post['setting']),
		'name'=>$post['name'],
	);
	$id=intval($post['id']);
	if($id){
		$data['is_my']=1;
		$data['type']=4;
		$data['hide']=1;
		pdo_update('core_plugins',$data,array('id'=>$id));
		pdo_update('core_old_plugins',$old,array('name'=>$post['name']));
	}else{
		pdo_insert('core_plugins',$data);
		pdo_insert('core_old_plugins',$old);
	}
	exi('操作成功！');
}